package com.wrk._1_语法._04_循环._02_嵌套循环;

public class _002_星星打印图形 {
    public class OuterClass{
        public static class InnerClassA{
            public static void main(String[] args) {
                //打印平行四边形
                int a = 5;  //高度
                for (int s = 0; s < a; s++) {    //控制高度
                    for (int d = 0; d < a - s - 1; d++) {
                        System.out.print(" ");   //打印左侧空格
                    }
                    for (int f = 1; f <= 5; f++) {
                        System.out.print("*");   //打印右侧*号
                    }System.out.println();
                }
            }
        }
        public static class InnerClassB{
            public static void main(String[] args) {
                //打印实心三角形
                int n = 5;  //高度
                for (int q = 0; q < n; q++) {    //控制高度
                    for (int w = 0; w < n - q - 1; w++) {
                        System.out.print(" ");   //打印左侧空格
                    }
                    for (int e = 0; e < 2 * q + 1; e++) {
                        System.out.print("*");   //打印右侧*号
                    }
                    System.out.println();
                }
            }
        }
        public static class InnerClassC{
            public static void main(String[] args) {
            //打印空心三角形
            /*‌代码逻辑说明‌
            第一行处理：仅打印一个星号，位置居中（左侧填充 a-1 个空格）。
            最后一行处理‌：全部填充星号，数量为 2a-1（保证三角形底边完整）。
            中间行处理‌：每行首尾各一个星号，中间填充 2b-1 个空格，形成空心效果。例如，当 b=2（第三行）时，空格数 = 2*2-1=3，输出 * *。*/
                int a = 5;  //高度
                for (int b = 0;b < a; b++){    //控制高度
                    for (int c = 0;c < a - b - 1; c++){
                        System.out.print(" ");   //打印左侧空格
                    }
                    if (b == 0){
                        System.out.print("*");   //打印第一行*号
                    } else if (b == a - 1) {
                        for (int d = 0; d < 2 * a - 1; d++){
                            System.out.print("*");   //打印最后一行*号
                        }
                    }else {
                        System.out.print("*");   //打印最左侧*号
                        for (int e = 0; e < 2 * b - 1; e++){
                            System.out.print(" ");  //打印中间空格
                        }
                        System.out.print("*");   //打印最右侧*号
                    }
                    System.out.println();
                }
            }
        }
        public static class InnerClassD{
            public static void main(String[] args) {
                //打印实心菱形
                int a =5;
                //先打印上半部分
                for (int b =0; b < a; b++){
                    for (int c =0; c < a -b -1; c++){
                        System.out.print(" ");
                    }
                    for (int d =0; d < 2 * b + 1;d++){
                        System.out.print("*");
                    }
                    System.out.println();
                }//在打印下半部分
                for (int e = 0;e < a - 1; e++){
                    for (int f = a; f > a -e -1; f--){
                        System.out.print(" ");
                    }for (int g = 2 * a -2; g > 2 * e + 1; g--){
                        System.out.print("*");
                    }
                    System.out.println();
                }
            }
        }
        public static class InnerClassE{
            public static void main(String[] args) {
                //打印空心菱形
                int a =7;
                //先打印上半部分
                for (int b =0; b < a; b++){
                    for (int c = 0; c < a -b -1; c++) {
                        System.out.print(" ");
                    }if (b == 0){
                        System.out.print("*");  //打印第一行*
                    } else {
                        System.out.print("*");  //打印最左侧*
                        for (int d = 0; d < 2 * b-1; d++){
                            System.out.print(" ");  //打印中间空格
                        }
                        System.out.print("*");  //打印最右侧*
                    }
                    System.out.println();
                }
                //打印下半部分
                /*for (int e = 0; e < a -1; e++){
                    for (int f = a; f > a -e -1; f--){
                        System.out.print(" ");
                    }if (e == a -2){
                        System.out.print("*");  //打印最后一行*
                    }else {
                        System.out.print("*");
                        for (int f = 0; f <2 * e - 1 ;f++){
                            System.out.print(" ");
                        }System.out.print("*");
                    }
                    System.out.println();
                }*/
                for (int i = a - 2; i >= 0; i--) {
                    for (int j = 0; j < a - i - 1; j++) {
                        System.out.print(" ");
                    }
                    if (i == 0) {
                        System.out.print("*");
                    } else {
                        System.out.print("*");
                        for (int k = 0; k < 2 * i - 1; k++) {
                            System.out.print(" ");
                        }
                        System.out.print("*");
                    }System.out.println();
                }
            }
        }
    }
}
